package Top100;

import DataStructure.heapStackQueue.queue.MaxSlidingWindowByQueue;
import DataStructure.stringOps.LNS.LNRSubstring;
import DataStructure.stringOps.LNS.LNRSubstringByQueue;
import DataStructure.stringOps.slidingWindow.*;

/**
 * @author liujun
 * @version 1.0
 * @date 2021/12/7
 * @author—Email ljfirst@mail.ustc.edu.cn
 * @blogURL https://blog.csdn.net/ljfirst
 * @description 滑动窗口
 */
public interface SlidingWindow {

    default void SlidingWindow() {
        // 数组的连续积小于给定值的组合
        ArrayPermutation_Sliding sw1 = new ArrayPermutation_Sliding();

        // 最长无重复子串
        LNRSubstring sw2 = new LNRSubstringByQueue();
        // 至少有 K 个重复字符的最长子串
        LongestKRepeatSequence ls = new LongestKRepeatSequence();

        // 最小覆盖子串
        MinCoverSubstring sw3 = new MinCoverSubstring();
        MinCoverSubstringPlus sw3p = new MinCoverSubstringPlus();

        // 找到源串中所有目标串的连续排列
        FindAllAnagrams faa = new FindAllAnagrams();

        // 滑动窗口的最大值
        MaxSlidingWindow msw = new MaxSlidingWindow();
        MaxSlidingWindowByQueue mswq = new MaxSlidingWindowByQueue();

        // 一个S和一个T，请问你S中是否存在一个子串，包含T中所有字符且不包含其他字符
        PermutationinString ps = new PermutationinString();
    }
}
